From be269961dc77973b482f07bd5c84cb9093e4443c Mon Sep 17 00:00:00 2001 From: Jim Blandy Date: Mon, 10 May 1993 00:16:34 +0000 Subject: [PATCH] * xdisp.c (display_text_line): Apply faces to characters according to overlays and text properties; use compute_char_face to figure out what face to use, and where a new face starts. * xterm.c (dumpglyphs): Use the upper bits of the glyphs to decide which frame face to use. Call GLYPH_FOLLOW_ALIASES to make sure we're implementing the glyph table properly. If we're not using the default or mode line face, call intern_face to find a display face for the frame face selected by the glyph code. Implement underlining. Remove the `font' argument; we have to derive this from the frame and face anyway. Change all callers. * disptab.h (GLYPH_FOLLOW_ALIASES): New macro. --- src/disptab.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/disptab.h b/src/disptab.h index 37f4bc76db2..d8a4c9ab06d 100644 --- a/src/disptab.h +++ b/src/disptab.h @@ -63,6 +63,12 @@ extern Lisp_Object Vglyph_table; return the alias for G. */ #define GLYPH_ALIAS(base, g) XINT (base[g]) +/* Follow all aliases for G in the glyph table given by (BASE, + LENGTH), and set G to the final glyph. */ +#define GLYPH_FOLLOW_ALIASES(base, length, g) \ + while (GLYPH_ALIAS_P ((base), (length), (g))) \ + (g) = GLYPH_ALIAS ((base), (g)); + /* Assuming that GLYPH_SIMPLE_P (BASE, LEN, G) is 0, return the length and the address of the character-sequence used for outputting GLYPH G. */ -- 2.30.2